ποΈGitΠ―ΡΠ°ποΈ
docs/en/developer.md renovate/fastlane-2.x-lockfile (056eed64) Text, 3.73 KB
title: Developer Guide
layout: default
nav_order: 2
has_children: true
Developer Guide
Technical documentation for contributing to the Meshtastic Android and Desktop app.
Before You Open a PR
Things that trip up first-time contributors β check these before requesting review:
β’ Formatting passes β run T383838./gradlew spotlessApply to auto-format, then verify with T383838spotlessCheck
β’ Detekt passes β run T383838./gradlew detekt and fix all reported issues
β’ All tests pass β run T383838./gradlew test allTests (both are needed: T383838test covers Android-only modules, T383838allTests covers KMP)
β’ Screenshot tests pass β if you touched any Compose UI, run T383838./gradlew :screenshot-tests:validateDebugScreenshotTest and update reference images if needed
β’ Protos are an external dependency β protobuf models come from the T383838org.meshtastic:protobufs Maven artifact (pinned in T383838gradle/libs.versions.toml); change protos upstream and bump the version, never edit generated code locally
β’ Docs updated β if you changed user-visible UI, update the corresponding page under T383838docs/en/user/
β’ Previews updated β if you changed UI composables, update the corresponding T383838*Previews.kt file and the screenshot-test baselines
β’ Branch naming β branches must start with T383838feat/, T383838fix/, T383838chore/, T383838docs/, T383838build/, T383838ci/, T383838refactor/, T383838test/, or T383838deps/
What's New for Developers
<!-- DEVWHATSNEW_START -->
<!-- Add new entries at the top. Format:
Month YYYY β Page or area β One sentence on what changed architecturally or procedurally.
Keep the last 5β8 entries and trim older ones from the bottom.
-->
August 2026 β Documentation Style β New page: the house style guide for T383838docs/en/ prose, with rule IDs, a project word list, and the reasoning behind each convention.
August 2026 β Map tile sources are one shared catalogue in T383838feature/map (T383838MapTileCatalogue, T383838RasterTileSpec), so both flavors draw the same raster base maps and overlays from one definition.
August 2026 β Both maps draw an imported feature's own icon and drape a KMZ T383838GroundOverlay image at its T383838LatLonBox (rotation included) β MapLibre via an T383838ImageSource quad, Google via T383838GroundOverlayOptions (#3786).
August 2026 β Offline map-pack downloads are gated on T383838offlineMapsSupported, since the MapLibre offline API compiles on Desktop but silently downloads nothing there.
August 2026 β New module T383838feature/map-maplibre: the F-Droid flavor and Desktop now render every map surface (main map, node track, traceroute, discovery, inline mini-map) through T383838maplibre-compose from one multiplatform module, and T383838osmdroid is gone. The shared rules both renderers must agree on live in T383838feature/map policy classes.
August 2026 β Android Auto removed from all build variants (#6779). T383838feature/car is gone β the module, its Car App Library dependencies, the T383838automotive_app_desc.xml manifest entry and the T383838google flavor's T383838FlavorModule registration.
August 2026 β Testing β CI gained a fourth runner tier: T383838ubuntu-slim (#6674, #6677) now carries the lightweight jobs. It is single-CPU, unprivileged, x64-only and capped at 15 minutes, so anything needing T383838sudo, Docker or a full-history clone stays on T383838ubuntu-24.04-arm. Picking rules are in T383838.github/instructions/ci-workflows.instructions.md.
August 2026 β Flatpak sources are generated inside each architecture's own offline build (#6919) rather than committed, and the flatpak-sources plugin resolves platform dependencies transitively (0.2.x), so the hand-tracked entries are gone.
<!-- DEVWHATSNEW_END -->
Served by rngit 1.5.3 - Generated in 0.03s